home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 21.zip / BS1 part 21 / Professional Page v4.0 (1993)(Gold Disk)(Disk 1 of 4)[HD].7z / Professional Page v4.0 (1993)(Gold Disk)(Disk 1 of 4)[HD].adf / rexx.lzh / PPageAutoSave.rexx < prev    next >
OS/2 REXX Batch file  |  1992-03-13  |  2KB  |  135 lines

  1. /*
  2.     PPageAutoSave.rexx
  3.     Copyright Gold Disk Inc, January, 1992
  4.  
  5. */
  6. signal on break_c
  7. signal on break_d
  8. signal on break_e
  9. signal on break_f
  10. signal on error
  11. signal on halt
  12. signal on ioerr
  13.  
  14. arg backup
  15.  
  16.  
  17. if ~show(p, PPAGEAREXX) then exit_msg()
  18.  
  19. if ~show(l, "rexxsupport.library") then
  20.     if ~addlib("rexxsupport.library",0,-30) then
  21.    call exit_msg("Please install the rexxsupport.library in your libs: directory before running this Genie")
  22.  
  23. minutes = 60 * 50
  24.  
  25. do forever
  26.  
  27.     interval = getclip(ppautosave)
  28.     if interval = '' then exit_msg()
  29.  
  30.     call delay(interval * minutes)
  31.  
  32.     if ~show(p, PPAGEAREXX) then exit_msg()
  33.  
  34.     do while ppm_GetState() ~= "0 0"
  35.  
  36.       call delay(.2 * minutes)
  37.  
  38.     end
  39.  
  40.     if ~ppm_DocChanged() then iterate
  41.     dname   = ppm_GetDocName()
  42.     dsaved  = ppm_SavedDate()
  43.  
  44.     if dname ~= prevdname then
  45.     do
  46.         ok =  ppm_Inform(3, "Would you like to save now?", "Cancel","No", "Yes")
  47.  
  48.         if ok = 1 then iterate
  49.         else if ok = 0 then exit_msg()
  50.  
  51.         if dsaved = "Not Saved" then
  52.         do
  53.             dname = ppm_GetFileName("Save Document As..", "PPage:", "")
  54.             if dname = '' then iterate
  55.         end
  56.  
  57.         backup = Y
  58.         file = splitpath(dname)
  59.         prevdname = dname
  60.  
  61.     end
  62.     else
  63.     do
  64.         ok =  ppm_Inform(3, "Would you like to save now?", "Cancel","No", "Yes")
  65.         if ok = 1 then iterate
  66.         else if ok = 0 then exit_msg()
  67.     end
  68.  
  69.     if ~ppm_SaveDocument(dname) then
  70.     do
  71.         response =  ppm_Inform(2, "An error has occured saving document. Try again?", "No", "Yes")
  72.         if response = 0 then exit_msg()
  73.         else iterate
  74.     end
  75.  
  76.     call ppm_SetDocName(file)
  77.  
  78.     if backup = 'Y' then
  79.     do
  80.         address command
  81.         'copy'  '"'dname'"' '"'dname'.bak"'
  82.         backup = N
  83.     end
  84.  
  85. end
  86.  
  87.  
  88. exit_msg()
  89.  
  90. splitpath: procedure expose dname
  91. do
  92.  
  93.     spos = pos('/', dname)
  94.  
  95.     if spos = 0 then
  96.     do
  97.        vpos = pos(':', dname)
  98.        if vpos = 0 & spos = 0 then
  99.        return dname
  100.  
  101.     end
  102.  
  103.     file    = substr(dname, max(vpos, spos) + 1)
  104.  
  105.     return(file)
  106.  
  107. end
  108.  
  109. exit_msg: procedure
  110. do
  111.     arg message
  112.  
  113.     if message ~= '' then
  114.       call ppm_Inform(1, message, )
  115.  
  116.     call setclip(ppautosave, "")
  117.  
  118.     exit
  119.  
  120. end
  121.  
  122. break_c:
  123. break_d:
  124. break_e:
  125. break_f:
  126. error:
  127. say errortext(rc)
  128. halt:
  129. ioerr:
  130. do
  131.     call setclip(ppautosave, "")
  132.     exit
  133. end
  134.  
  135.